package com.lekang.service;

import java.util.Date;

/**
 * 任务生成Service接口
 * 
 * @author lekang
 * @date 2025-10-23
 */
public interface ITaskGenerationService 
{
    /**
     * 为单个老人生成指定时间段内的护理任务
     * 
     * @param elderlyId 老人ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 生成的任务数量
     */
    int generateTasksForElderly(Long elderlyId, Date startDate, Date endDate);

    /**
     * 为所有在住老人生成月度任务（定时任务调用）
     * 每月1号00:00:00执行
     * 
     * @return 生成的任务总数
     */
    int generateMonthlyTasksForAllElderly();

    /**
     * 为订单生成护理计划外任务（微信下单后调用）
     * 
     * @param orderId 订单ID
     * @return 影响行数
     */
    int generateTaskForOrder(Long orderId);

    /**
     * 刷新任务状态（每日00:00:00执行）
     * 处理已退住老人的任务
     * 
     * @return 处理的任务数量
     */
    int refreshTaskStatus();

    /**
     * 为入住首月生成任务（入住完成后调用）
     * 
     * @param checkInId 入住管理ID
     * @return 生成的任务数量
     */
    int generateFirstMonthTasks(Long checkInId);
}

